package com.start.workflow.common.std;

import com.start.common.entity.StartBaseUser;

import java.util.List;

/**
 * 抄送配置接口
 *
 * @param <T>
 */
public interface IStartActCarbonCopy<T extends StartBaseUser> extends IStartActType {

    /**
     * 类型全局唯一标识
     *
     * @return
     */
    @Override
    default String type() {
        return carbonCopyKey();
    }

    /**
     * 抄送人名称
     *
     * @return
     */
    default String carbonCopyLabel() {
        return carbonCopyKey();
    }

    /**
     * 抄送配置类型
     *
     * @return
     */
    String carbonCopyKey();

    /**
     * 排序序号 数字越小月靠前
     *
     * @return int
     */
    default int order() {
        return 99;
    }

    /**
     * 类别
     *
     * @return String
     */
    String categoryKey();

    /**
     * 类别名称
     *
     * @return String
     */
    default String categoryName() {
        return categoryKey();
    }

    /**
     * 描述
     *
     * @return
     */
    default String actSendDesc() {
        return null;
    }

    /**
     * 加载候选人
     *
     * @param value
     * @return List<T>
     */
    List<T> load(String value);
}
